Skip to content

Remove the unused push notification prompt and Firebase messaging stack - #137

Merged
manuelgeek merged 1 commit into
feat/home-redesign-planfrom
fix/remove-notifications-prompt
Aug 5, 2026
Merged

Remove the unused push notification prompt and Firebase messaging stack#137
manuelgeek merged 1 commit into
feat/home-redesign-planfrom
fix/remove-notifications-prompt

Conversation

@manuelgeek

Copy link
Copy Markdown
Member

Closes #136.

The site asked every first-time visitor for notification permission, but I never actually send push notifications. It was a permission prompt for a channel with no traffic, and it was the first thing a visitor saw.

I removed the whole dead stack rather than just hiding the modal, since nothing else used any of it:

  • NotificationsPrompt.tsx and its render in components/layouts/default.tsx
  • pages/api/notification.ts — the FCM topic-subscribe route, whose only caller was the modal
  • firebase/util/index.ts — Firebase init, only ever consumed by messaging
  • public/firebase-messaging-sw.js — the background-message service worker
  • utils/constants.ts — it held only NOTIFICATIONS, so the file was empty afterwards
  • public/images/notif.svg — the modal artwork
  • the firebase dependency, plus the six now-dead NEXT_PUBLIC_FIREBASE_* / NEXT_PUBLIC_MESSAGING_TOPIC vars in .env.example

Kept react-toastifySessionFeedback still uses it. utils/helpers.ts stays too, since isClient has three other consumers.

Verified with yarn lint (clean) and yarn build (succeeds). The yarn.lock diff is a Firebase-only prune.

Based on feat/home-redesign-plan rather than dev, since I branched off it — merge #124 first and this retargets cleanly.

One thing to note: visitors who already granted permission still have firebase-messaging-sw.js registered in their browser. Deleting the file stops new registrations, but existing ones linger until they expire. Harmless given nothing is being sent — happy to add an explicit unregister if you'd rather flush them.

…g stack

The site prompted every first-time visitor for notification permission,
but no push notifications are ever sent. Remove the modal along with the
rest of the dead stack: the FCM topic-subscription API route, the
Firebase app init, the background-message service worker, the
NOTIFICATIONS constant and its now-empty module, the modal artwork, the
firebase dependency, and the unused NEXT_PUBLIC_FIREBASE_* and
NEXT_PUBLIC_MESSAGING_TOPIC entries in .env.example.

react-toastify stays; SessionFeedback still uses it.

Closes #136

@NewtonMutugi NewtonMutugi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@manuelgeek
manuelgeek merged commit c4adc35 into feat/home-redesign-plan Aug 5, 2026
1 check passed
@manuelgeek
manuelgeek deleted the fix/remove-notifications-prompt branch August 5, 2026 07:31
manuelgeek added a commit that referenced this pull request Aug 18, 2026
* docs: add home redesign / 2026 rebrand plan + design assets

Adds the landing-page rebrand plan (docs/design/REDESIGN-PLAN.md) with
section-by-section gap analysis and phased build order, the new-design
image assets, and layout-reference mockups. Display font is Rauschen B
(licensed; files kept out of the public repo via .gitignore).

Refs #123

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: defer font wiring to follow-up issue #125

Font self-hosting (Rauschen B woff2 via @font-face) is tracked separately
so this PR stays docs/assets-only.

Refs #125

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: update color palette and adjust active link styles for consistency

* feat: update tailwind configuration and lockfile dependencies

* docs: defer font wiring to follow-up issue #125

Font self-hosting (Rauschen B woff2 via @font-face) is tracked separately
so this PR stays docs/assets-only.

Refs #125

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: point font to private repo, drop local archive reference

The licensed font now lives in droidconKE/private-fonts and is injected
at build time; removed the reference to the local zip archive.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* style: update font-slab to Rubik and remove unused accent colors from tailwind config

* feat: expand black color palette and add droidcon-1 and droidcon-2 color scales to tailwind configuration

* docs: document central-branch workflow for redesign PRs

All redesign sub-PRs target feat/home-redesign-plan (not dev); that branch
merges to dev once the full redesign is approved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Inject licensed Rauschen B brand font at build time (#128)

* feat: inject licensed Rauschen B brand font at build time

The brand display font is licensed and must not live in this public repo.
A prebuild step (scripts/fetch-font.sh) fetches the woff2 from the private
droidconKE/private-fonts repo into gitignored public/fonts/, then it's
loaded via @font-face and exposed as --font-display / .font-display.

Auth resolves FONT_REPO_TOKEN (env or .env) -> `gh auth token`, and falls
back to the CSS font stack so builds without access still succeed.

Refs #125

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: switch global font to Rauschen B site-wide

Point --font-family and --font-slab at Rauschen B so the whole site adopts
the brand font; Montserrat remains the fallback when the licensed file
isn't present (no font access at build).

Note: only the Book weight is available, so bold headings are faux-bolded
until the Bold/Black cut is sourced from the brand kit.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* docs: explain FONT_REPO_TOKEN + private font repo in .env.example

Give devs who don't know the private repo exists the context: it's
optional (falls back to Montserrat), and the PAT only needs Contents:
Read-only on droidconKE/private-fonts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: remove antigravity config file

* docs: accurate color tokens from Figma export (green #00FF4F + blue #0055FF)

Add the Droidcon Figma variable exports (public/docs/colors) and document
the full green/blue ramps in the redesign plan. Neutrals/dark-mode inferred
from the mockups. Flutter exports moved to the flutter repo.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: rebrand color tokens — blue primary + green accent

Remap the Tailwind palette to the 2026 brand colors from the Figma export
(primary #0055FF, accent #00FF4F), retiring cyan/orange. Existing token
names are kept (remapped) so nothing breaks; per-component cleanup follows
in later phases. Adds full blue/green ramps (bg-blue-500, text-green-500…)
and rounded-card radii.

Refs #123

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* refactor: rename droidcon-1 and droidcon-2 color palettes to green and blue for clarity

* chore: remove bun.lock file

* Phase-1: Navbar and Footer (#130)

* feat: update NavBar logo paths and improve styling consistency

* feat: update NavBar button style and remove inline background image from Home page

* feat: enhance ToggleTheme component styling and accessibility

* feat: update color palette and adjust active link styles for consistency

* feat: adjust NavBar padding for improved layout consistency

* feat: add bottom border to NavBar and adjust padding for main content

* feat: update Tailwind CSS configuration to enhance animation and adjust accent color

* feat: add Marquee component to enhance homepage with event highlights

* feat: rebrand theme colors with new blue and green palettes and move marquee animation to global utilities

* style: update background and text color utility classes to blue-50 and custom dark mode accent

* feat: redesign footer component with new layout, logo, and updated typography

* feat: add themed skyline background images to footer layout

* refactor: remove footer border and update content alignment to bottom-end

* refactor: standardize footer ticket button using updated btn-primary class and add btn-outline style

* feat: comment out login functionality and dialog in navbar

* Feat/phase 2 (#131)

* feat: update NavBar logo paths and improve styling consistency

* feat: update NavBar button style and remove inline background image from Home page

* feat: enhance ToggleTheme component styling and accessibility

* feat: update color palette and adjust active link styles for consistency

* feat: adjust NavBar padding for improved layout consistency

* feat: add bottom border to NavBar and adjust padding for main content

* feat: update Tailwind CSS configuration to enhance animation and adjust accent color

* feat: add Marquee component to enhance homepage with event highlights

* feat: rebrand theme colors with new blue and green palettes and move marquee animation to global utilities

* style: update background and text color utility classes to blue-50 and custom dark mode accent

* feat: redesign footer component with new layout, logo, and updated typography

* feat: add themed skyline background images to footer layout

* refactor: remove footer border and update content alignment to bottom-end

* refactor: standardize footer ticket button using updated btn-primary class and add btn-outline style

* feat: redesign homepage banner with updated branding, call-to-action buttons, and conference details grid

* feat: add About component with event details and link to more information

* feat: redesign about section with new stats grid and layout structure

* feat: redesign event types section with new layout and static card configuration

* feat: remove Sponsor component and update SponsorsList with custom card styling

* feat: replace inline sponsor rendering with SponsorCard component and update tier layout

* refactor: implement responsive masonry gallery layout and update theme styling for Gallery and SponsorsList components

* refactor: rewrite Gallery component to use masonry layout with a dedicated GalleryImage sub-component

* feat: redesign community partners section with a grid layout and visual styling

* refactor: update UI styling and remove hardcoded organizer data dependencies from home components

* feat: redesign community partners section with a grid layout and decorative polka dot patterns

* style: update border radius and padding consistency across About and EventTypes components

* feat: replace event type images with custom SVG icons and update layout grid styling

* feat: refine SponsorsList component styling and spacing

* feat: increase navbar font size and update sponsors list with mock data on homepage

* feat: update font size for Android254 and Kotlin Kenya headings in Organizers component

* feat: remove unused image assets from new design

* feat: center theme toggle button and add mock sponsor data to home page

* feat: update button style for notifications prompt to use primary theme

* feat: add venue information and link to map location in footer

* Apply homepage review fixes

- Android -> Mobile in hero/about/marquee copy
- Flutter edition 2nd -> 3rd in About stats
- SponsorsList: sponsor button under the "help make ... happen" header
- Organizers: activate the API organizer logo grid using the sponsor
  cut-corner card design (smaller)
- Get-your-ticket buttons (nav + banner): whitespace-nowrap
- Past Events dropdown: w-max + nowrap (was wrapping)
- Non-platinum sponsor cards slightly smaller (platinum unchanged)
- Nav: consistent gap between Past Events and Get Ticket

---------

Co-authored-by: Magak Emmanuel <emashmagak@gmail.com>

* feat: remove login/auth, keep session bookmarks in localStorage (#133)

Closes #132

- Drop Google OAuth + AuthContext providers and the axios Bearer interceptor
- Delete Login, AuthContext, useStarSession and the API-backed StarIcon
- Strip the token injection from every getServerSideProps
- Remove @react-oauth/google and cookies-next deps
- Reimplement session bookmarks + the My Sessions filter fully client-side
  via localStorage (no backend), scoped to the live sessions page

* Feat/polish and propagate (#134)

* feat: update about page design and assets

* feat: update Value component to change background color for "Build relationships" section

* feat: add custom_index page with mock sponsors and update sponsor section background color

* feat: add diagonal stripe pattern to sponsor section dividers

* Redesign sessions, speakers, session detail, about & sponsors (#135)

* feat: redesign sessions, speakers, about & sponsors in the new brand language

Propagate the 2026 rebrand across the inner pages:

- Sessions: blue header card, horizontal day-tab pills, rounded cards with
  colored pills + halftone dots; blue border / green hover; My Sessions +
  star bookmarks; live filter drawer with click-outside + Escape
- Session detail: block layout — gradient speaker block (duotone photo),
  green session block, ( Session )/( Speaker ) labels
- Speakers: header card + duotone speaker cards, equal-height grid
- Feedback: redesigned self-contained modal (branded panel), route-aware
  (session vs event feedback)
- 404/error pages reworked into the design system
- About: blue intro + green story card, organizing-team duotone cards
- Sponsors: hero + gradient stats card (baked stats image replaced with
  editable stat cards), green CTA card; retained Newton's underline + stripes
- Past-events pages moved onto the shared sessions shell

* feat: update session images to new SVG format and enhance session layout

---------

Co-authored-by: NewtonMutugi <newtonmut197@gmail.com>

* fix: scope theme-toggle CSS + make session cards fully clickable

- Rename the toggle dot/line classes per component (theme-toggle, ms-toggle,
  save-toggle) so the nav ThemeToggle no longer inherits the SessionToggles /
  SaveSession styles on sessions/detail pages (fixes the misaligned toggle)
- Wrap the whole session card (grid + list) in the session link; star stops
  propagation so bookmarking doesn't navigate; service sessions stay inert
- Add a real hover lift (-translate-y) that reads in dark mode too

* chore: stop tracking .claude/ local settings

* fix: isolate accent cards from the fixed nav; restore session-detail layout

- Add `isolation: isolate` to the accent/green cards that layer content with
  z-10 over an absolute background (SessionDetails, about story card, sponsors
  CTA, home EventTypes). Without it their inner z-10 tied with the nav's z-10
  and painted over it on scroll.
- Restore the redesigned session-detail shell (dropped in the #135 merge
  conflict): plain back link + stacked blocks in s-container, no dark strip.

* fix: site title reads 'Largest Mobile' not 'Largest Android' (og/twitter meta)

* fix: meta description reads 'engineering of mobile applications'

* fix: remove the unused push notification prompt and Firebase messaging stack (#137)

The site prompted every first-time visitor for notification permission,
but no push notifications are ever sent. Remove the modal along with the
rest of the dead stack: the FCM topic-subscription API route, the
Firebase app init, the background-message service worker, the
NOTIFICATIONS constant and its now-empty module, the modal artwork, the
firebase dependency, and the unused NEXT_PUBLIC_FIREBASE_* and
NEXT_PUBLIC_MESSAGING_TOPIC entries in .env.example.

react-toastify stays; SessionFeedback still uses it.

Closes #136

* Feat/fix navbar issue (#138)

* fix: adjust navbar layout for better responsiveness

* fix: adjust navbar width based on event readiness

* fix: correct navbar width condition for event readiness

* Revised landing page, brand icons and social preview (#139)

* feat: revised landing page, brand icons and social preview

Rebuild the landing page against the revised design:

- Hero: "Beyond Stacks" as live gradient text over the Spline cube,
  shortened subtitle, edition to 7TH
- Event Types becomes "2026 Conf. Essentials" on a blue-green gradient,
  with the "More Stacks. All Mobile." strip
- New "Conf. Highlights" section (Beyond the Sessions, Developer Days)
- Sponsors: platinum, gold, then the rest ordered silver/bronze/snack,
  centre-biased when few
- Community Partners reduced to the green card; footer rebuilt on the
  KICC halftone and the large wordmark

Comment out the CFP entry points (hero button, Speakers card) rather
than deleting them — both return next year.

Regenerate every app icon and favicon from dcke-square, point og:image
and twitter:image at dcke-cover, and move the PWA chrome off the
pre-rebrand palette to #0055FF.

Drop 2.8 MB of assets the redesign no longer references.

Pin text colour with explicit dark: variants on fixed-colour cards: the
global bare-p rule outranks a single utility class in dark mode.

* fix: adjust background opacity for marquee component

---------

Co-authored-by: NewtonMutugi <newtonmut197@gmail.com>

* fix: drop the vertical divider from the About stat cards (#140)

The design splits the 2x2 stat grid with a single horizontal hairline.
The vertical border between columns was mine, not the design's.

* refactor: update wording for clarity and conciseness in About and Team sections

* feat: rebuild the About and Sponsors pages to the 2026 design (#142)

About: merge the intro and stats into one card with the mascot and a
two-column body, add the photo row, and give the intro, How it started
and Organizing Team cards their green bottom fades. Tickets and Event
Highlights are commented out for now, not deleted.

Sponsors: photo-background hero, flat blue attendee card with the
green-bordered stats panel overlapping it, and a tighter Value grid.

Copy is unchanged throughout.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: NewtonMutugi <newtonmut197@gmail.com>
Co-authored-by: Newton Mutugi <84735867+NewtonMutugi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants